[INFO] cloning repository https://github.com/doyoubi/undermoon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/doyoubi/undermoon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoyoubi%2Fundermoon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoyoubi%2Fundermoon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6598dfa080efc2bc398eefe77c6b70f8d68cede9
[INFO] fixing doyoubi/undermoon against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoyoubi%2Fundermoon" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/doyoubi/undermoon
[INFO] finished tweaking git repo https://github.com/doyoubi/undermoon
[INFO] tweaked toml for git repo https://github.com/doyoubi/undermoon written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/doyoubi/undermoon on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/doyoubi/undermoon already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `config` dependency)
[INFO] [stderr] warning: `undermoon` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10
[INFO] running `Command { std: "docker" "start" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   memchr v2.5.0 (as host dependency) removed features: use_std
[INFO] [stderr]   tokio v1.20.1 removed features: winapi
[INFO] [stderr] 
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `config` dependency)
[INFO] [stderr] warning: `undermoon` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.127
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking bytes v1.2.1
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling tokio v1.20.1
[INFO] [stderr]     Checking itoa v1.0.3
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling serde v1.0.142
[INFO] [stderr]     Checking tracing-core v0.1.29
[INFO] [stderr]    Compiling crossbeam-utils v0.8.11
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.3
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]     Checking miniz_oxide v0.5.3
[INFO] [stderr]     Checking lock_api v0.4.7
[INFO] [stderr]     Checking indexmap v1.9.1
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking alloc-stdlib v0.2.1
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking brotli-decompressor v2.3.2
[INFO] [stderr]     Checking tracing v0.1.36
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.10
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling serde_json v1.0.83
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]     Checking http v0.2.8
[INFO] [stderr]    Compiling fs_extra v1.2.0
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking parking_lot_core v0.9.3
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]    Compiling regex-syntax v0.6.27
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking regex v1.6.0
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking predicates-core v1.0.3
[INFO] [stderr]     Checking either v1.7.0
[INFO] [stderr]    Compiling async-trait v0.1.57
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking brotli v3.3.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]    Compiling crossbeam-queue v0.3.6
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking buf_redux v0.8.4
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking generic-array v0.14.6
[INFO] [stderr]     Checking twoway v0.1.8
[INFO] [stderr]     Checking termtree v0.2.4
[INFO] [stderr]    Compiling crc16 v0.4.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking gimli v0.26.2
[INFO] [stderr]    Compiling serde_derive v1.0.142
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]     Checking predicates-tree v1.0.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]    Compiling openssl-sys v0.9.75
[INFO] [stderr]    Compiling zstd-sys v2.0.1+zstd.1.5.2
[INFO] [stderr]    Compiling jemalloc-sys v0.5.1+5.3.0-patched
[INFO] [stderr]    Compiling backtrace v0.3.66
[INFO] [stderr]     Checking multipart v0.18.0
[INFO] [stderr]     Checking sha-1 v0.10.0
[INFO] [stderr]     Checking object v0.29.0
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking fragile v1.2.1
[INFO] [stderr]     Checking predicates v2.1.1
[INFO] [stderr]     Checking headers v0.3.7
[INFO] [stderr]     Checking pathdiff v0.2.1
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]     Checking chrono v0.4.20
[INFO] [stderr]     Checking btoi v0.4.2
[INFO] [stderr]    Compiling openssl v0.10.41
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]     Checking atoi v1.0.0
[INFO] [stderr]     Checking dashmap v5.3.4
[INFO] [stderr]     Checking coarsetime v0.1.22
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking arc-swap v1.5.1
[INFO] [stderr]     Checking crc64 v2.0.0
[INFO] [stderr]     Checking string-error v0.1.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]    Compiling caseless v0.2.1
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.32
[INFO] [stderr]    Compiling pin-project-internal v1.0.11
[INFO] [stderr]    Compiling mockall_derive v0.11.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking thiserror v1.0.32
[INFO] [stderr]     Checking tungstenite v0.14.0
[INFO] [stderr]     Checking pin-project v1.0.11
[INFO] [stderr]     Checking config v0.13.2
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking futures-batch v0.6.0
[INFO] [stderr]     Checking mockall v0.11.2
[INFO] [stderr]     Checking tokio-util v0.7.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking async-compression v0.3.14
[INFO] [stderr]     Checking tokio-stream v0.1.9
[INFO] [stderr]     Checking tokio-tungstenite v0.15.0
[INFO] [stderr]     Checking tokio-util v0.6.10
[INFO] [stderr]     Checking h2 v0.3.13
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking warp v0.3.2
[INFO] [stderr]     Checking reqwest v0.11.11
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking jemallocator v0.5.0
[INFO] [stderr]     Checking undermoon v0.6.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/mem_broker.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/connection.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/redis_client.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/coordinator.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/server_proxy.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/proxy_manager_test.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 55s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, fs_extra v1.2.0, multipart v0.18.0, openssl v0.10.41
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: undermoon v0.6.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `config` dependency)
[INFO] [stderr] warning: `undermoon` (manifest) generated 1 warning
[INFO] [stderr]    Compiling tokio v1.20.1
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]    Compiling caseless v0.2.1
[INFO] [stderr]     Checking tokio-util v0.7.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking async-compression v0.3.14
[INFO] [stderr]     Checking tokio-stream v0.1.9
[INFO] [stderr]     Checking tokio-util v0.6.10
[INFO] [stderr]     Checking tokio-tungstenite v0.15.0
[INFO] [stderr]     Checking h2 v0.3.13
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking warp v0.3.2
[INFO] [stderr]     Checking reqwest v0.11.11
[INFO] [stderr]     Checking undermoon v0.6.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `sink`
[INFO] [stdout]  --> src/common/batch.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(feature = "sink")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `sink` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sink`
[INFO] [stdout]    --> src/common/batch.rs:412:7
[INFO] [stdout]     |
[INFO] [stdout] 412 | #[cfg(feature = "sink")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `sink` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MockProxyMetaSender`
[INFO] [stdout]    --> src/coordinator/core.rs:243:27
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub use self::trait_mod::{MockProxyMetaSender, ProxyMetaSender};
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sink`
[INFO] [stdout]  --> src/common/batch.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(feature = "sink")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `sink` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `sink`
[INFO] [stdout]    --> src/common/batch.rs:412:7
[INFO] [stdout]     |
[INFO] [stdout] 412 | #[cfg(feature = "sink")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `sink` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/broker/external.rs:246:17
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn try_lock(&self) -> Result<AtomicLockGuard, MetaStoreError> {
[INFO] [stdout]     |                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn try_lock(&self) -> Result<AtomicLockGuard<'_>, MetaStoreError> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/atomic_lock.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn lock(&self) -> Option<AtomicLockGuard> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn lock(&self) -> Option<AtomicLockGuard<'_>> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/slot_lock.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn lock(&self, slot: usize) -> Option<SlotMutexGuard> {
[INFO] [stdout]    |                 ^^^^^                         ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn lock(&self, slot: usize) -> Option<SlotMutexGuard<'_>> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/coordinator/api.rs:196:19
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture {
[INFO] [stdout]     |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/migration/scan_task.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 435 |         cmd_task: Self::Task,
[INFO] [stdout] 436 |     ) -> BoxFuture<Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 436 |     ) -> BoxFuture<'_, Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>> {
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/migration/task.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout]  99 |         cmd_task: Self::Task,
[INFO] [stdout] 100 |     ) -> BoxFuture<Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     ) -> BoxFuture<'_, Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>>;
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/packet.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn to_resp_slice(&self) -> RespSlice {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn to_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]     |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/protocol/resp.rs:63:26
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn to_resp_slice(&self) -> RespSlice {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn to_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/command.rs:331:27
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn get_resp_slice(&self) -> RespSlice {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn get_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/executor.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 89 |     ) -> CmdReplyFuture {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]    |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/executor.rs:534:9
[INFO] [stdout]     |
[INFO] [stdout] 534 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 537 |     ) -> CmdReplyFuture {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 537 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/executor.rs:582:24
[INFO] [stdout]     |
[INFO] [stdout] 582 |     fn handle_data_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture {
[INFO] [stdout]     |                        ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 582 |     fn handle_data_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1038:24
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     fn handle_eval_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture {
[INFO] [stdout]      |                        ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     fn handle_eval_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1124:9
[INFO] [stdout]      |
[INFO] [stdout] 1124 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     ) -> CmdReplyFuture {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1306:9
[INFO] [stdout]      |
[INFO] [stdout] 1306 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1310 |     ) -> CmdReplyFuture {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1310 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/session.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture;
[INFO] [stdout]    |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_>;
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/session.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ) -> CmdReplyFuture;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     ) -> CmdReplyFuture<'_>;
[INFO] [stdout]    |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/session.rs:225:19
[INFO] [stdout]     |
[INFO] [stdout] 225 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture {
[INFO] [stdout]     |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 225 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `version` is not used by name
[INFO] [stdout]    --> tests/proxy_manager_test.rs:315:21
[INFO] [stdout]     |
[INFO] [stdout] 314 | ...   {src_proxy_address} migrating 1 8001-16383 {epoch} {}src_proxy_address 127.0.0.1:6379 {dst_proxy_address} 127.0.0.1:7000",
[INFO] [stdout]     |                                                          -- this formatting argument uses named argument `version` by position
[INFO] [stdout] 315 | ...           version=SET_CLUSTER_API_VERSION, epoch=epoch, src_proxy_address=src_proxy_address, dst_proxy_address=dst_proxy_address)
[INFO] [stdout]     |               ^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(named_arguments_used_positionally)]` on by default
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 314 |             {src_proxy_address} migrating 1 8001-16383 {epoch} {version}src_proxy_address 127.0.0.1:6379 {dst_proxy_address} 127.0.0.1:7000",
[INFO] [stdout]     |                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/broker/external.rs:246:17
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn try_lock(&self) -> Result<AtomicLockGuard, MetaStoreError> {
[INFO] [stdout]     |                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn try_lock(&self) -> Result<AtomicLockGuard<'_>, MetaStoreError> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/atomic_lock.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn lock(&self) -> Option<AtomicLockGuard> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn lock(&self) -> Option<AtomicLockGuard<'_>> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/slot_lock.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn lock(&self, slot: usize) -> Option<SlotMutexGuard> {
[INFO] [stdout]    |                 ^^^^^                         ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn lock(&self, slot: usize) -> Option<SlotMutexGuard<'_>> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/coordinator/api.rs:196:19
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture {
[INFO] [stdout]     |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/migration/scan_task.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 435 |         cmd_task: Self::Task,
[INFO] [stdout] 436 |     ) -> BoxFuture<Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 436 |     ) -> BoxFuture<'_, Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>> {
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/migration/task.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout]  99 |         cmd_task: Self::Task,
[INFO] [stdout] 100 |     ) -> BoxFuture<Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     ) -> BoxFuture<'_, Result<(), ClusterSendError<BlockingHintTask<Self::Task>>>>;
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/protocol/packet.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn to_resp_slice(&self) -> RespSlice {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn to_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]     |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/protocol/resp.rs:63:26
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn to_resp_slice(&self) -> RespSlice {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn to_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/command.rs:331:27
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn get_resp_slice(&self) -> RespSlice {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn get_resp_slice(&self) -> RespSlice<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/executor.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 89 |     ) -> CmdReplyFuture {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]    |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/executor.rs:534:9
[INFO] [stdout]     |
[INFO] [stdout] 534 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 537 |     ) -> CmdReplyFuture {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 537 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/executor.rs:582:24
[INFO] [stdout]     |
[INFO] [stdout] 582 |     fn handle_data_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture {
[INFO] [stdout]     |                        ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 582 |     fn handle_data_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1038:24
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     fn handle_eval_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture {
[INFO] [stdout]      |                        ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     fn handle_eval_cmd(&self, cmd_ctx: CmdCtx, reply_receiver: CmdReplyReceiver) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1124:9
[INFO] [stdout]      |
[INFO] [stdout] 1124 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     ) -> CmdReplyFuture {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/proxy/executor.rs:1306:9
[INFO] [stdout]      |
[INFO] [stdout] 1306 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1310 |     ) -> CmdReplyFuture {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1310 |     ) -> CmdReplyFuture<'_> {
[INFO] [stdout]      |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/session.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture;
[INFO] [stdout]    |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_>;
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/proxy/session.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ) -> CmdReplyFuture;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     ) -> CmdReplyFuture<'_>;
[INFO] [stdout]    |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/proxy/session.rs:225:19
[INFO] [stdout]     |
[INFO] [stdout] 225 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture {
[INFO] [stdout]     |                   ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 225 |     fn handle_cmd(&self, cmd: Command) -> CmdReplyFuture<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 46s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, fs_extra v1.2.0, multipart v0.18.0, openssl v0.10.41
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   memchr v2.5.0 (as host dependency) removed features: use_std
[INFO] [stderr]   tokio v1.20.1 removed features: winapi
[INFO] [stderr] 
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `config` dependency)
[INFO] [stderr] warning: `undermoon` (manifest) generated 1 warning
[INFO] [stderr]     Checking undermoon v0.6.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/common/resp_execution.rs (2 fixes)
[INFO] [stderr]        Fixed src/coordinator/detector.rs (2 fixes)
[INFO] [stderr]        Fixed src/replication/replicator.rs (1 fix)
[INFO] [stderr]        Fixed src/replication/redis_replicator.rs (1 fix)
[INFO] [stderr]        Fixed src/migration/scan_migration.rs (1 fix)
[INFO] [stderr]        Fixed src/common/cluster.rs (4 fixes)
[INFO] [stderr]        Fixed src/common/utils.rs (7 fixes)
[INFO] [stderr]        Fixed src/migration/task.rs (3 fixes)
[INFO] [stderr]        Fixed src/common/proto.rs (3 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/persistence.rs:39:37
[INFO] [stdout]     |
[INFO] [stdout]  38 |         let _guard = self.lock.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout]  39 |         self.json_file.store(store).await
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  40 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/sync/mutex.rs:778:1
[INFO] [stdout]     |
[INFO] [stdout] 778 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/persistence.rs:44:31
[INFO] [stdout]     |
[INFO] [stdout]  43 |         let _guard = self.lock.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout]  44 |         self.json_file.load().await
[INFO] [stdout]     |                               ^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  45 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/sync/mutex.rs:778:1
[INFO] [stdout]     |
[INFO] [stdout] 778 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:504:61
[INFO] [stdout]     |
[INFO] [stdout] 499 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 504 |         self.storage.auto_add_nodes(cluster_name, node_num).await
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 505 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:519:14
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 519 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 520 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:528:59
[INFO] [stdout]     |
[INFO] [stdout] 523 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 528 |         self.storage.auto_delete_free_nodes(cluster_name).await
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 529 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:590:14
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 591 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:575:50
[INFO] [stdout]     |
[INFO] [stdout] 570 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 575 |         self.storage.migrate_slots(cluster_name).await
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 576 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:626:14
[INFO] [stdout]     |
[INFO] [stdout] 602 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 626 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 627 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:252:38
[INFO] [stdout]     |
[INFO] [stdout]  28 |     let svc = warp::any().map(move || service.clone());
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `svc` calls a custom destructor
[INFO] [stdout]     |         `svc` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 252 |     warp::serve(routes).run(address).await
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 253 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `svc` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `svc` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/lib.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/common/resp_execution.rs:30:19
[INFO] [stdout]     |
[INFO] [stdout]  25 |       let mut client = client;
[INFO] [stdout]     |           ----------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `client` calls a custom destructor
[INFO] [stdout]     |           `client` will be dropped later as of Edition 2024
[INFO] [stdout]  26 |       loop {
[INFO] [stdout]  27 |           let mut c = match client.take() { Some(c) => {
[INFO] [stdout]     |               -----         -------------
[INFO] [stdout]     |               |             |
[INFO] [stdout]     |               |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `c` calls a custom destructor
[INFO] [stdout]     |               `c` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  30 |               match client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                     |                                             |
[INFO] [stdout]     |                     |                                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                     |                                             up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |                                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  34 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  38 |           }};
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  39 |
[INFO] [stdout]  40 |           match keep_sending_cmd(
[INFO] [stdout]     |  _______________-
[INFO] [stdout]  41 | |             &mut c,
[INFO] [stdout]  42 | |             opt_multi_cmd.clone(),
[INFO] [stdout]  43 | |             interval,
[INFO] [stdout] ...   |
[INFO] [stdout]  46 | |         .await
[INFO] [stdout]     | |              -
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |______________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  64 |           tokio::time::sleep(interval).await;
[INFO] [stdout]     |           ----------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:266:19
[INFO] [stdout]     |
[INFO] [stdout] 266 |             match Pin::new(&mut reader).poll_next(cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 271 |                 Poll::Ready(Some(req)) => {
[INFO] [stdout]     |                                  ---
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `req` calls a custom destructor
[INFO] [stdout]     |                                  `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 290 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `req` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:294:19
[INFO] [stdout]     |
[INFO] [stdout] 294 |             match Pin::new(reply_receiver).poll(cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 298 |                 Poll::Ready(res) => {
[INFO] [stdout]     |                             ---
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout] 299 |                     if reply_receiver_list.pop_front().is_none() {
[INFO] [stdout]     |                        -------------------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 305 |                         Ok(task_reply) => {
[INFO] [stdout]     |                            ----------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            `task_reply` calls a custom destructor
[INFO] [stdout]     |                            `task_reply` will be dropped later as of Edition 2024
[INFO] [stdout] 306 |                             let (request, packet, mut slowlog) = (*task_reply).into_inner();
[INFO] [stdout]     |                                                                  --------------------------
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 322 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.21/src/oneshot.rs:478:1
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `task_reply` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:333:39
[INFO] [stdout]     |
[INFO] [stdout] 325 |             match Pin::new(&mut writer).poll_ready(cx) {
[INFO] [stdout]     |                   ------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 331 |             match replies.pop_front() {
[INFO] [stdout]     |                   -------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 332 |                 Some(reply) => {
[INFO] [stdout] 333 |                     if let Err(err) = Pin::new(&mut writer).start_send(reply) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 336 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/coordinator/api.rs:53:32
[INFO] [stdout]     |
[INFO] [stdout]  53 |         while let Some(sock) = s.next().await {
[INFO] [stdout]     |                                ^^^^^^^^^-----
[INFO] [stdout]     |                                |        |
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  54 |             let sock = sock.map_err(CoordinateError::Io)?;
[INFO] [stdout]     |                 ----   ----------------------------------
[INFO] [stdout]     |                 |      |
[INFO] [stdout]     |                 |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |      `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `sock` calls a custom destructor
[INFO] [stdout]     |                 `sock` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |             tokio::spawn(fut);
[INFO] [stdout]     |             -----------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sock` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/runtime/task/join.rs:320:1
[INFO] [stdout]     |
[INFO] [stdout] 320 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/coordinator/detector.rs:239:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let mut client = match self.client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 239 |         match client.execute_single(ping_command).await {
[INFO] [stdout]     |                                                   ^^^^^
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 249 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:363:44
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 while let Some(cmd_task) = sync_tasks_receiver.next().await {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |                          |
[INFO] [stdout]     |                                            |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 367 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                 |                                                               |
[INFO] [stdout]     |                                 |                                                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |                                                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 396 |                       } else {
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:397:31
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                 |                                                          up until Edition 2021 `#15` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 401 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:404:27
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                             |                                                             |
[INFO] [stdout]     |                             |                                                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                             |                                                             `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                             up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 408 |                   };
[INFO] [stdout]     |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 409 |
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:444:26
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          ^^^^-
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                            up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 445 | |                     }
[INFO] [stdout]     | |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:456:57
[INFO] [stdout]     |
[INFO] [stdout] 456 | ...                   while let Some(cmd_tasks) = sync_tasks_receiver.next().await {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                                   |                          |
[INFO] [stdout]     |                                                   |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                   |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 457 | ...                       for cmd_task in cmd_tasks.into_iter() {
[INFO] [stdout]     |                                           ---------------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `iter` calls a custom destructor
[INFO] [stdout]     |                                           `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 462 | ...                   }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:563:26
[INFO] [stdout]     |
[INFO] [stdout] 558 |                     let dst_client =
[INFO] [stdout]     |                         ----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `dst_client` calls a custom destructor
[INFO] [stdout]     |                         `dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 563 |                         .await
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 564 |                         .map(move |()| Some(dst_client))
[INFO] [stdout] 565 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/protocol/client.rs:597:65
[INFO] [stdout]     |
[INFO] [stdout] 596 |             let mut client = self.inner_factory.create_client(address.clone()).await?;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `client` calls a custom destructor
[INFO] [stdout]     |                 `client` will be dropped later as of Edition 2024
[INFO] [stdout] 597 |             match client.execute_single(vec![b"PING".to_vec()]).await {
[INFO] [stdout]     |                                                                 ^^^^^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 603 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/backend.rs:517:47
[INFO] [stdout]     |
[INFO] [stdout] 517 |             while let Poll::Ready(task_opt) = Pin::new(&mut task_receiver).poll_next(cx) {
[INFO] [stdout]     |                                   --------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                   |           |
[INFO] [stdout]     |                                   |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                   `task_opt` calls a custom destructor
[INFO] [stdout]     |                                   `task_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 529 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:355:42
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let mut client = match self.client_factory.create_client(address).await {
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 355 |         match client.execute_single(cmd).await {
[INFO] [stdout]     |                                          ^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:374:27
[INFO] [stdout]     |
[INFO] [stdout] 373 |         let meta_map = self.meta_map.load();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `meta_map` calls a custom destructor
[INFO] [stdout]     |             `meta_map` will be dropped later as of Edition 2024
[INFO] [stdout] 374 |         if let Err(err) = meta_map.migration_map.send_sync_task(cmd_ctx).await {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                           |                                              |
[INFO] [stdout]     |                           |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           |                                              up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 399 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> src/proxy/command.rs:471:1
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl Drop for CmdReplySender {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `meta_map` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/strategy/hybrid.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl<T: RefCnt> Drop for HybridProtection<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:374:74
[INFO] [stdout]     |
[INFO] [stdout] 373 |         let meta_map = self.meta_map.load();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `meta_map` calls a custom destructor
[INFO] [stdout]     |             `meta_map` will be dropped later as of Edition 2024
[INFO] [stdout] 374 |         if let Err(err) = meta_map.migration_map.send_sync_task(cmd_ctx).await {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |                                                                          |
[INFO] [stdout]     |                                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 399 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `meta_map` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/strategy/hybrid.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl<T: RefCnt> Drop for HybridProtection<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:817:39
[INFO] [stdout]      |
[INFO] [stdout]  817 | ...                       match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  818 | ...                           Some(lock_guard) => break (lock_guard, state),
[INFO] [stdout]  819 | ...                           None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      |                                       --------------------------------------------------
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  820 | ...                       }
[INFO] [stdout]  821 | ...                   }
[INFO] [stdout]      |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:817:39
[INFO] [stdout]      |
[INFO] [stdout]  734 |               while let Some((state, reply_receiver)) = exists_task_receiver.next().await {
[INFO] [stdout]      |                               -----                                                 -----
[INFO] [stdout]      |                               |                                                     |
[INFO] [stdout]      |                               |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               `state` calls a custom destructor
[INFO] [stdout]      |                               `state` will be dropped later as of Edition 2024
[INFO] [stdout]  735 |                   let res = reply_receiver.await;
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `__awaitee` calls a custom destructor
[INFO] [stdout]      |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  746 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  747 |                           MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      |                           --------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  748 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  758 |                   let (lock_guard, state) = match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                             -     -------------------------------------------------
[INFO] [stdout]      |                                             |     |
[INFO] [stdout]      |                                             |     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |  ___________________________________________|     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      | |
[INFO] [stdout]  759 | |                     Some(lock_guard) => {
[INFO] [stdout]  760 | |                         stats.importing_lock_success.fetch_add(1, Ordering::Relaxed);
[INFO] [stdout]  761 | |                         (lock_guard, state)
[INFO] [stdout] ...    |
[INFO] [stdout]  775 | |                         let (state, reply_receiver) = match Self::resend_to_exist_to_dst(
[INFO] [stdout]      | |  _____________________________________________________-     -
[INFO] [stdout]      | | |  _________________________________________________________|
[INFO] [stdout]  776 | | | |                         inner_task,
[INFO] [stdout]  777 | | | |                         &(*cmd_task_factory),
[INFO] [stdout]  778 | | | |                         key,
[INFO] [stdout]  779 | | | |                         lock_slot,
[INFO] [stdout]  780 | | | |                         &dst_sender,
[INFO] [stdout]  781 | | | |                     ) {
[INFO] [stdout]      | | | |                     -
[INFO] [stdout]      | | | |                     |
[INFO] [stdout]      | | | |_____________________this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      | | |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]  782 | | |                           Ok(r) => r,
[INFO] [stdout]  783 | | |                           Err(()) => continue,
[INFO] [stdout]  784 | | |                       };
[INFO] [stdout]      | | |                       -
[INFO] [stdout]      | | |                       |
[INFO] [stdout]      | | |_______________________this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                         `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  797 | |                                 let (state, reply_receiver) = err.into_inner();
[INFO] [stdout]      | |                                      -----                    ----------------
[INFO] [stdout]      | |                                      |                        |
[INFO] [stdout]      | |                                      |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      | |                                      |                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      | |                                      `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  798 | |
[INFO] [stdout]  799 | |                                 let key_exists = match Self::parse_exists_result(reply_receiver.await) {
[INFO] [stdout]      | |                                                                                  --------------------
[INFO] [stdout]      | |                                                                                  |
[INFO] [stdout]      | |                                                                                  this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                                                                                  `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  804 | |                                     let (_state, req_task) =
[INFO] [stdout]      | |                                          ------
[INFO] [stdout]      | |                                          |
[INFO] [stdout]      | |                                          this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      | |                                          `#11` will be dropped later as of Edition 2024
[INFO] [stdout]  805 | |                                         MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      | |                                         --------------------------------------------------------------
[INFO] [stdout]      | |                                         |
[INFO] [stdout]      | |                                         this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      | |                                         `#12` will be dropped later as of Edition 2024
[INFO] [stdout]  806 | |                                     if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      | |                                                ---    -------------------------
[INFO] [stdout]      | |                                                |      |
[INFO] [stdout]      | |                                                |      this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      | |                                                |      `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      | |                                                `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  817 | |                                     match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      | |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                           |
[INFO] [stdout]      | |                                           this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      | |                                           up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  818 | |                                         Some(lock_guard) => break (lock_guard, state),
[INFO] [stdout]  819 | |                                         None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      | |                                                 --------------------------------------------------
[INFO] [stdout]      | |                                                 |
[INFO] [stdout]      | |                                                 this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      | |                                                 `#15` will be dropped later as of Edition 2024
[INFO] [stdout]  820 | |                                     }
[INFO] [stdout]  821 | |                                 }
[INFO] [stdout]      | |                                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  825 | |                 };
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  828 |                       MgrCmdStateDumpPttl::from_state_exists(state, &(*cmd_task_factory), lock_guard);
[INFO] [stdout]      |                       -------------------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                       `#16` will be dropped later as of Edition 2024
[INFO] [stdout]  829 |                   if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                              ---    -------------------------
[INFO] [stdout]      |                              |      |
[INFO] [stdout]      |                              |      this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                              |      `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                              `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  832 |                   if let Err(_err) = dump_pttl_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                              ----
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `_err` calls a custom destructor
[INFO] [stdout]      |                              `_err` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:734:51
[INFO] [stdout]      |
[INFO] [stdout]  734 |               while let Some((state, reply_receiver)) = exists_task_receiver.next().await {
[INFO] [stdout]      |                               -----                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                               |                         |                           |
[INFO] [stdout]      |                               |                         |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               |                         |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      |                               |                         up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                               `state` calls a custom destructor
[INFO] [stdout]      |                               `state` will be dropped later as of Edition 2024
[INFO] [stdout]  735 |                   let res = reply_receiver.await;
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `__awaitee` calls a custom destructor
[INFO] [stdout]      |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  746 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  747 |                           MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      |                           --------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  748 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  758 |                   let (lock_guard, state) = match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                             -     -------------------------------------------------
[INFO] [stdout]      |                                             |     |
[INFO] [stdout]      |                                             |     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |  ___________________________________________|     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      | |
[INFO] [stdout]  759 | |                     Some(lock_guard) => {
[INFO] [stdout]  760 | |                         stats.importing_lock_success.fetch_add(1, Ordering::Relaxed);
[INFO] [stdout]  761 | |                         (lock_guard, state)
[INFO] [stdout] ...    |
[INFO] [stdout]  775 | |                         let (state, reply_receiver) = match Self::resend_to_exist_to_dst(
[INFO] [stdout]      | |  _____________________________________________________-     -
[INFO] [stdout]      | | |  _________________________________________________________|
[INFO] [stdout]  776 | | | |                         inner_task,
[INFO] [stdout]  777 | | | |                         &(*cmd_task_factory),
[INFO] [stdout]  778 | | | |                         key,
[INFO] [stdout]  779 | | | |                         lock_slot,
[INFO] [stdout]  780 | | | |                         &dst_sender,
[INFO] [stdout]  781 | | | |                     ) {
[INFO] [stdout]      | | | |                     -
[INFO] [stdout]      | | | |                     |
[INFO] [stdout]      | | | |_____________________this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      | | |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]  782 | | |                           Ok(r) => r,
[INFO] [stdout]  783 | | |                           Err(()) => continue,
[INFO] [stdout]  784 | | |                       };
[INFO] [stdout]      | | |                       -
[INFO] [stdout]      | | |                       |
[INFO] [stdout]      | | |_______________________this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                         `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  797 | |                                 let (state, reply_receiver) = err.into_inner();
[INFO] [stdout]      | |                                      -----                    ----------------
[INFO] [stdout]      | |                                      |                        |
[INFO] [stdout]      | |                                      |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      | |                                      |                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      | |                                      `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  798 | |
[INFO] [stdout]  799 | |                                 let key_exists = match Self::parse_exists_result(reply_receiver.await) {
[INFO] [stdout]      | |                                                                                  --------------------
[INFO] [stdout]      | |                                                                                  |
[INFO] [stdout]      | |                                                                                  this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                                                                                  `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  804 | |                                     let (_state, req_task) =
[INFO] [stdout]      | |                                          ------
[INFO] [stdout]      | |                                          |
[INFO] [stdout]      | |                                          this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      | |                                          `#11` will be dropped later as of Edition 2024
[INFO] [stdout]  805 | |                                         MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      | |                                         --------------------------------------------------------------
[INFO] [stdout]      | |                                         |
[INFO] [stdout]      | |                                         this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      | |                                         `#12` will be dropped later as of Edition 2024
[INFO] [stdout]  806 | |                                     if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      | |                                                ---    -------------------------
[INFO] [stdout]      | |                                                |      |
[INFO] [stdout]      | |                                                |      this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      | |                                                |      `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      | |                                                `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  819 | |                                         None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      | |                                                 --------------------------------------------------
[INFO] [stdout]      | |                                                 |
[INFO] [stdout]      | |                                                 this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      | |                                                 `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  825 | |                 };
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  828 |                       MgrCmdStateDumpPttl::from_state_exists(state, &(*cmd_task_factory), lock_guard);
[INFO] [stdout]      |                       -------------------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                       `#16` will be dropped later as of Edition 2024
[INFO] [stdout]  829 |                   if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                              ---    -------------------------
[INFO] [stdout]      |                              |      |
[INFO] [stdout]      |                              |      this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                              |      `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                              `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  832 |                   if let Err(_err) = dump_pttl_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                              ----
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `_err` calls a custom destructor
[INFO] [stdout]      |                              `_err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  835 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:864:46
[INFO] [stdout]      |
[INFO] [stdout]  864 |           while let Some((state, reply_fut)) = dump_pttl_task_receiver.next().await {
[INFO] [stdout]      |                           -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                           |                    |                              |
[INFO] [stdout]      |                           |                    |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           |                    |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |                    this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                           |                    up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           `state` calls a custom destructor
[INFO] [stdout]      |                           `state` will be dropped later as of Edition 2024
[INFO] [stdout]  865 |               let res = reply_fut.await;
[INFO] [stdout]      |                         ---------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         `__awaitee` calls a custom destructor
[INFO] [stdout]      |                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  878 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  879 |                           MgrCmdStateForward::from_state_dump_pttl(state, registry.clone());
[INFO] [stdout]      |                           -----------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  880 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  896 |               let (state, req_task, reply_receiver) = MgrCmdStateRestoreForward::from_state_dump(
[INFO] [stdout]      |  _____________________________________________________-
[INFO] [stdout]  897 | |                 state,
[INFO] [stdout]  898 | |                 entry,
[INFO] [stdout]  899 | |                 &(*cmd_task_factory),
[INFO] [stdout]  900 | |                 registry.clone(),
[INFO] [stdout]  901 | |             );
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |               `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  902 |
[INFO] [stdout]  903 |               if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                          ---    -------------------------
[INFO] [stdout]      |                          |      |
[INFO] [stdout]      |                          |      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                          |      `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  907 |               if let Err(err) = restore_task_sender.unbounded_send((state, reply_receiver)) {
[INFO] [stdout]      |                          ---
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                          `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  910 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:919:46
[INFO] [stdout]      |
[INFO] [stdout]  919 |         while let Some((state, reply_fut)) = restore_task_receiver.next().await {
[INFO] [stdout]      |                         -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                    |                            |
[INFO] [stdout]      |                         |                    |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                    |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                         |                    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `state` calls a custom destructor
[INFO] [stdout]      |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout]  920 |             let resp = match reply_fut.await {
[INFO] [stdout]      |                              ---------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `__awaitee` calls a custom destructor
[INFO] [stdout]      |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  929 |                 task_context,
[INFO] [stdout]      |                 ------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `task_context` calls a custom destructor
[INFO] [stdout]      |                 `task_context` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  947 |             let (_state, req_task, reply_receiver) =
[INFO] [stdout]      |                                    --------------
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    `reply_receiver` calls a custom destructor
[INFO] [stdout]      |                                    `reply_receiver` will be dropped later as of Edition 2024
[INFO] [stdout]  948 |                 MgrCmdStateDel::from_task_context(task_context, key, &(*cmd_task_factory));
[INFO] [stdout]      |                 --------------------------------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  949 |
[INFO] [stdout]  950 |             if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                        ---    -------------------------
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  954 |             if del_task_sender.unbounded_send(reply_receiver).is_err() {
[INFO] [stdout]      |                ----------------------------------------------
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  957 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `reply_receiver` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1008:31
[INFO] [stdout]      |
[INFO] [stdout]  978 |             let mut lock_guard_opt = None;
[INFO] [stdout]      |                 ------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `lock_guard_opt` calls a custom destructor
[INFO] [stdout]      |                 `lock_guard_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1008 |             if let Err(err) = umsync_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1021 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lock_guard_opt` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:971:40
[INFO] [stdout]      |
[INFO] [stdout]  971 |         while let Some(pending_task) = pending_umsync_task_receiver.next().await {
[INFO] [stdout]      |                        ------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                        |               |                                   |
[INFO] [stdout]      |                        |               |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |               |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        |               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                        |               up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `pending_task` calls a custom destructor
[INFO] [stdout]      |                        `pending_task` will be dropped later as of Edition 2024
[INFO] [stdout]  972 |             let PendingUmSyncTask {
[INFO] [stdout]  973 |                 cmd_task,
[INFO] [stdout]      |                 --------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `cmd_task` calls a custom destructor
[INFO] [stdout]      |                 `cmd_task` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  978 |             let mut lock_guard_opt = None;
[INFO] [stdout]      |                 ------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `lock_guard_opt` calls a custom destructor
[INFO] [stdout]      |                 `lock_guard_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  981 |                 if let Some(lock_guard) = key_lock.lock(key.clone(), lock_slot) {
[INFO] [stdout]      |                                           -------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  988 |                 tokio::time::sleep(Duration::from_millis(3)).await;
[INFO] [stdout]      |                 --------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |             let (state, req_task, reply_fut) =
[INFO] [stdout]      |                  -----            ---------
[INFO] [stdout]      |                  |                |
[INFO] [stdout]      |                  |                `reply_fut` calls a custom destructor
[INFO] [stdout]      |                  |                `reply_fut` will be dropped later as of Edition 2024
[INFO] [stdout]      |                  `state` calls a custom destructor
[INFO] [stdout]      |                  `state` will be dropped later as of Edition 2024
[INFO] [stdout] 1000 |                 MgrCmdStateUmSync::from_task(cmd_task, key, lock_guard, cmd_task_factory.as_ref());
[INFO] [stdout]      |                 ----------------------------------------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 1001 |             if let Err(err) = src_proxy_sender.send(req_task) {
[INFO] [stdout]      |                        ---    -------------------------------
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                        |      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1011 |                 let MgrCmdStateUmSync { inner_task, .. } = err.into_inner().0;
[INFO] [stdout]      |                                                            ----------------
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                                            `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 1012 |                 let task = WaitableTask::new_with_registry(inner_task, registry.clone());
[INFO] [stdout] 1013 |                 if let Err(err) = dst_sender.send(ReqTask::Simple(task)) {
[INFO] [stdout]      |                            ---
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                            `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1021 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `lock_guard_opt` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `reply_fut` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1063:31
[INFO] [stdout]      |
[INFO] [stdout] 1062 |             let (_state, req_task) = MgrCmdStateForward::from_state_umsync(state, registry.clone());
[INFO] [stdout]      |                  ------
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  `_state` calls a custom destructor
[INFO] [stdout]      |                  `_state` will be dropped later as of Edition 2024
[INFO] [stdout] 1063 |             if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1066 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1030:46
[INFO] [stdout]      |
[INFO] [stdout] 1030 |         while let Some((state, reply_fut)) = umsync_task_receiver.next().await {
[INFO] [stdout]      |                         -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                    |                           |
[INFO] [stdout]      |                         |                    |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                    |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         |                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `state` calls a custom destructor
[INFO] [stdout]      |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1033 |             match reply_fut.await {
[INFO] [stdout]      |                   ---------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1062 |             let (_state, req_task) = MgrCmdStateForward::from_state_umsync(state, registry.clone());
[INFO] [stdout]      |                  ------              --------------------------------------------------------------
[INFO] [stdout]      |                  |                   |
[INFO] [stdout]      |                  |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                  |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                  `_state` calls a custom destructor
[INFO] [stdout]      |                  `_state` will be dropped later as of Edition 2024
[INFO] [stdout] 1063 |             if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                        ---
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1066 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1070:37
[INFO] [stdout]      |
[INFO] [stdout] 1070 |         while let Some(reply_fut) = del_task_receiver.next().await {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                     |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1071 |             let resp = match reply_fut.await {
[INFO] [stdout]      |                              ---------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `__awaitee` calls a custom destructor
[INFO] [stdout]      |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1084 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/replication/redis_replicator.rs:164:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let mut cached_client: Option<F::Client> = None;
[INFO] [stdout]     |             -----------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cached_client` calls a custom destructor
[INFO] [stdout]     |             `cached_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 |                 tokio::time::sleep(interval).await;
[INFO] [stdout]     |                 ----------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 146 |             let cmd = match resolve_first_address(master_node_address.as_str()).await {
[INFO] [stdout]     |                             ---------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 161 |             let mut client = match cached_client.take() { Some(client) => {
[INFO] [stdout]     |                 ----------         --------------------
[INFO] [stdout]     |                 |                  |
[INFO] [stdout]     |                 |                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `client` calls a custom destructor
[INFO] [stdout]     |                 `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 |                 match self.client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                                                  |
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       |                                                  up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                       |                                                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |             }};
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 172 |
[INFO] [stdout] 173 |             let resp = match client.execute_single(cmd).await {
[INFO] [stdout]     |                              --------------------------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                              `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:133:31
[INFO] [stdout]     |
[INFO] [stdout] 133 |                         match BackendError::from_sender_backend_error(err) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:132:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     if let Err(err) = self.sender.send(t) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 154 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:131:37
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 while let Some(t) = it.next() {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 154 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/persistence.rs:39:37
[INFO] [stdout]     |
[INFO] [stdout]  38 |         let _guard = self.lock.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout]  39 |         self.json_file.store(store).await
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  40 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/sync/mutex.rs:778:1
[INFO] [stdout]     |
[INFO] [stdout] 778 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/persistence.rs:44:31
[INFO] [stdout]     |
[INFO] [stdout]  43 |         let _guard = self.lock.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout]  44 |         self.json_file.load().await
[INFO] [stdout]     |                               ^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  45 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/sync/mutex.rs:778:1
[INFO] [stdout]     |
[INFO] [stdout] 778 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:504:61
[INFO] [stdout]     |
[INFO] [stdout] 499 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 504 |         self.storage.auto_add_nodes(cluster_name, node_num).await
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 505 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:519:14
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 519 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 520 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:528:59
[INFO] [stdout]     |
[INFO] [stdout] 523 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 528 |         self.storage.auto_delete_free_nodes(cluster_name).await
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 529 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:590:14
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 591 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:575:50
[INFO] [stdout]     |
[INFO] [stdout] 570 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 575 |         self.storage.migrate_slots(cluster_name).await
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 576 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:626:14
[INFO] [stdout]     |
[INFO] [stdout] 602 |         let _guard = self
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `_guard` calls a custom destructor
[INFO] [stdout]     |             `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 626 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 627 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> src/common/atomic_lock.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl<'a> Drop for AtomicLockGuard<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/broker/service.rs:252:38
[INFO] [stdout]     |
[INFO] [stdout]  28 |     let svc = warp::any().map(move || service.clone());
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `svc` calls a custom destructor
[INFO] [stdout]     |         `svc` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 252 |     warp::serve(routes).run(address).await
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 253 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `svc` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `svc` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/lib.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/common/resp_execution.rs:30:19
[INFO] [stdout]     |
[INFO] [stdout]  25 |       let mut client = client;
[INFO] [stdout]     |           ----------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `client` calls a custom destructor
[INFO] [stdout]     |           `client` will be dropped later as of Edition 2024
[INFO] [stdout]  26 |       loop {
[INFO] [stdout]  27 |           let mut c = match client.take() { Some(c) => {
[INFO] [stdout]     |               -----         -------------
[INFO] [stdout]     |               |             |
[INFO] [stdout]     |               |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `c` calls a custom destructor
[INFO] [stdout]     |               `c` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  30 |               match client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                     |                                             |
[INFO] [stdout]     |                     |                                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                     |                                             up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |                                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  34 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  38 |           }};
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  39 |
[INFO] [stdout]  40 |           match keep_sending_cmd(
[INFO] [stdout]     |  _______________-
[INFO] [stdout]  41 | |             &mut c,
[INFO] [stdout]  42 | |             opt_multi_cmd.clone(),
[INFO] [stdout]  43 | |             interval,
[INFO] [stdout] ...   |
[INFO] [stdout]  46 | |         .await
[INFO] [stdout]     | |              -
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |______________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  64 |           tokio::time::sleep(interval).await;
[INFO] [stdout]     |           ----------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:266:19
[INFO] [stdout]     |
[INFO] [stdout] 266 |             match Pin::new(&mut reader).poll_next(cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 271 |                 Poll::Ready(Some(req)) => {
[INFO] [stdout]     |                                  ---
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `req` calls a custom destructor
[INFO] [stdout]     |                                  `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 290 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `req` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:294:19
[INFO] [stdout]     |
[INFO] [stdout] 294 |             match Pin::new(reply_receiver).poll(cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 298 |                 Poll::Ready(res) => {
[INFO] [stdout]     |                             ---
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout] 299 |                     if reply_receiver_list.pop_front().is_none() {
[INFO] [stdout]     |                        -------------------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 305 |                         Ok(task_reply) => {
[INFO] [stdout]     |                            ----------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            `task_reply` calls a custom destructor
[INFO] [stdout]     |                            `task_reply` will be dropped later as of Edition 2024
[INFO] [stdout] 306 |                             let (request, packet, mut slowlog) = (*task_reply).into_inner();
[INFO] [stdout]     |                                                                  --------------------------
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 322 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.21/src/oneshot.rs:478:1
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `task_reply` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/session.rs:333:39
[INFO] [stdout]     |
[INFO] [stdout] 325 |             match Pin::new(&mut writer).poll_ready(cx) {
[INFO] [stdout]     |                   ------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 331 |             match replies.pop_front() {
[INFO] [stdout]     |                   -------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 332 |                 Some(reply) => {
[INFO] [stdout] 333 |                     if let Err(err) = Pin::new(&mut writer).start_send(reply) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 336 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/coordinator/api.rs:53:32
[INFO] [stdout]     |
[INFO] [stdout]  53 |         while let Some(sock) = s.next().await {
[INFO] [stdout]     |                                ^^^^^^^^^-----
[INFO] [stdout]     |                                |        |
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  54 |             let sock = sock.map_err(CoordinateError::Io)?;
[INFO] [stdout]     |                 ----   ----------------------------------
[INFO] [stdout]     |                 |      |
[INFO] [stdout]     |                 |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |      `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `sock` calls a custom destructor
[INFO] [stdout]     |                 `sock` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |             tokio::spawn(fut);
[INFO] [stdout]     |             -----------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sock` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/io/poll_evented.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/runtime/task/join.rs:320:1
[INFO] [stdout]     |
[INFO] [stdout] 320 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/coordinator/detector.rs:239:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let mut client = match self.client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 239 |         match client.execute_single(ping_command).await {
[INFO] [stdout]     |                                                   ^^^^^
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 249 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:363:44
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 while let Some(cmd_task) = sync_tasks_receiver.next().await {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |                          |
[INFO] [stdout]     |                                            |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 367 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                 |                                                               |
[INFO] [stdout]     |                                 |                                                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |                                                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 396 |                       } else {
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:397:31
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                                 |                                                          up until Edition 2021 `#15` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 401 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:404:27
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                             |                                                             |
[INFO] [stdout]     |                             |                                                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                             |                                                             `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                             up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 408 |                   };
[INFO] [stdout]     |                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 409 |
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:444:26
[INFO] [stdout]     |
[INFO] [stdout] 375 |           let mut cached_dst_client = None;
[INFO] [stdout]     |               ---------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `cached_dst_client` calls a custom destructor
[INFO] [stdout]     |               `cached_dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 378 |               let mut src_client = match client_factory.create_client(src_address.clone()).await {
[INFO] [stdout]     |                   --------------         -------------------------------------------------------
[INFO] [stdout]     |                   |                      |                                                 |
[INFO] [stdout]     |                   |                      |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                      |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   |                      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `src_client` calls a custom destructor
[INFO] [stdout]     |                   `src_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |                       tokio::time::sleep(interval).await;
[INFO] [stdout]     |                       ----------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |                   let sync_tasks = if sleep_count >= SLEEP_BATCH_TIMES {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `sync_tasks` calls a custom destructor
[INFO] [stdout]     |                       `sync_tasks` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                           match future::select(sync_tasks_receiver.next(), YieldNow::default()).await
[INFO] [stdout]     |                                                                                                 -----
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 397 |                           match tokio::time::timeout(interval, sync_tasks_receiver.next()).await {
[INFO] [stdout]     |                                 ----------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                          |
[INFO] [stdout]     |                                 |                                                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 |                                                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 404 |                       match future::select(sync_tasks_receiver.next(), future::ready(())).await {
[INFO] [stdout]     |                                                                                           -----
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                   let res = match sync_tasks {
[INFO] [stdout]     |                       ---
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `res` calls a custom destructor
[INFO] [stdout]     |                       `res` will be dropped later as of Edition 2024
[INFO] [stdout] 411 |                       Some(cmd_tasks) => {
[INFO] [stdout] 412 |                           let res = Self::handle_blocking_requests(
[INFO] [stdout]     |  _____________________________---___-
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |                             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |                             `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 413 | |                             &slot_ranges,
[INFO] [stdout] 414 | |                             cached_dst_client.take(),
[INFO] [stdout] 415 | |                             &mut src_client,
[INFO] [stdout] ...   |
[INFO] [stdout] 420 | |                         .await;
[INFO] [stdout]     | |                          -----
[INFO] [stdout]     | |                          |   |
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |   `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                            `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 433 | /                         Self::scan_and_migrate_keys(
[INFO] [stdout] 434 | |                             &slot_ranges,
[INFO] [stdout] 435 | |                             scan_index,
[INFO] [stdout] 436 | |                             cached_dst_client.take(),
[INFO] [stdout] ...   |
[INFO] [stdout] 444 | |                         .await
[INFO] [stdout]     | |                          ^^^^-
[INFO] [stdout]     | |__________________________|___|
[INFO] [stdout]     | |__________________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                            |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                            up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                            `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 445 | |                     }
[INFO] [stdout]     | |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 470 | |             tokio::time::sleep(interval).await;
[INFO] [stdout]     | |             ----------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     | |             `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:456:57
[INFO] [stdout]     |
[INFO] [stdout] 456 | ...                   while let Some(cmd_tasks) = sync_tasks_receiver.next().await {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                                   |                          |
[INFO] [stdout]     |                                                   |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                   |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 457 | ...                       for cmd_task in cmd_tasks.into_iter() {
[INFO] [stdout]     |                                           ---------------------
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           `iter` calls a custom destructor
[INFO] [stdout]     |                                           `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 462 | ...                   }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/migration/scan_migration.rs:563:26
[INFO] [stdout]     |
[INFO] [stdout] 558 |                     let dst_client =
[INFO] [stdout]     |                         ----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `dst_client` calls a custom destructor
[INFO] [stdout]     |                         `dst_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 563 |                         .await
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 564 |                         .map(move |()| Some(dst_client))
[INFO] [stdout] 565 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/protocol/client.rs:597:65
[INFO] [stdout]     |
[INFO] [stdout] 596 |             let mut client = self.inner_factory.create_client(address.clone()).await?;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `client` calls a custom destructor
[INFO] [stdout]     |                 `client` will be dropped later as of Edition 2024
[INFO] [stdout] 597 |             match client.execute_single(vec![b"PING".to_vec()]).await {
[INFO] [stdout]     |                                                                 ^^^^^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 603 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/backend.rs:517:47
[INFO] [stdout]     |
[INFO] [stdout] 517 |             while let Poll::Ready(task_opt) = Pin::new(&mut task_receiver).poll_next(cx) {
[INFO] [stdout]     |                                   --------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                   |           |
[INFO] [stdout]     |                                   |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                   `task_opt` calls a custom destructor
[INFO] [stdout]     |                                   `task_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 529 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:355:42
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let mut client = match self.client_factory.create_client(address).await {
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 355 |         match client.execute_single(cmd).await {
[INFO] [stdout]     |                                          ^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:374:27
[INFO] [stdout]     |
[INFO] [stdout] 373 |         let meta_map = self.meta_map.load();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `meta_map` calls a custom destructor
[INFO] [stdout]     |             `meta_map` will be dropped later as of Edition 2024
[INFO] [stdout] 374 |         if let Err(err) = meta_map.migration_map.send_sync_task(cmd_ctx).await {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                           |                                              |
[INFO] [stdout]     |                           |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           |                                              up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 399 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> src/proxy/command.rs:471:1
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl Drop for CmdReplySender {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `meta_map` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/strategy/hybrid.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl<T: RefCnt> Drop for HybridProtection<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/manager.rs:374:74
[INFO] [stdout]     |
[INFO] [stdout] 373 |         let meta_map = self.meta_map.load();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `meta_map` calls a custom destructor
[INFO] [stdout]     |             `meta_map` will be dropped later as of Edition 2024
[INFO] [stdout] 374 |         if let Err(err) = meta_map.migration_map.send_sync_task(cmd_ctx).await {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |                                                                          |
[INFO] [stdout]     |                                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 399 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `meta_map` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.5.1/src/strategy/hybrid.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl<T: RefCnt> Drop for HybridProtection<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:817:39
[INFO] [stdout]      |
[INFO] [stdout]  817 | ...                       match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  818 | ...                           Some(lock_guard) => break (lock_guard, state),
[INFO] [stdout]  819 | ...                           None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      |                                       --------------------------------------------------
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  820 | ...                       }
[INFO] [stdout]  821 | ...                   }
[INFO] [stdout]      |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:817:39
[INFO] [stdout]      |
[INFO] [stdout]  734 |               while let Some((state, reply_receiver)) = exists_task_receiver.next().await {
[INFO] [stdout]      |                               -----                                                 -----
[INFO] [stdout]      |                               |                                                     |
[INFO] [stdout]      |                               |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               `state` calls a custom destructor
[INFO] [stdout]      |                               `state` will be dropped later as of Edition 2024
[INFO] [stdout]  735 |                   let res = reply_receiver.await;
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `__awaitee` calls a custom destructor
[INFO] [stdout]      |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  746 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  747 |                           MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      |                           --------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  748 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  758 |                   let (lock_guard, state) = match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                             -     -------------------------------------------------
[INFO] [stdout]      |                                             |     |
[INFO] [stdout]      |                                             |     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |  ___________________________________________|     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      | |
[INFO] [stdout]  759 | |                     Some(lock_guard) => {
[INFO] [stdout]  760 | |                         stats.importing_lock_success.fetch_add(1, Ordering::Relaxed);
[INFO] [stdout]  761 | |                         (lock_guard, state)
[INFO] [stdout] ...    |
[INFO] [stdout]  775 | |                         let (state, reply_receiver) = match Self::resend_to_exist_to_dst(
[INFO] [stdout]      | |  _____________________________________________________-     -
[INFO] [stdout]      | | |  _________________________________________________________|
[INFO] [stdout]  776 | | | |                         inner_task,
[INFO] [stdout]  777 | | | |                         &(*cmd_task_factory),
[INFO] [stdout]  778 | | | |                         key,
[INFO] [stdout]  779 | | | |                         lock_slot,
[INFO] [stdout]  780 | | | |                         &dst_sender,
[INFO] [stdout]  781 | | | |                     ) {
[INFO] [stdout]      | | | |                     -
[INFO] [stdout]      | | | |                     |
[INFO] [stdout]      | | | |_____________________this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      | | |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]  782 | | |                           Ok(r) => r,
[INFO] [stdout]  783 | | |                           Err(()) => continue,
[INFO] [stdout]  784 | | |                       };
[INFO] [stdout]      | | |                       -
[INFO] [stdout]      | | |                       |
[INFO] [stdout]      | | |_______________________this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                         `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  797 | |                                 let (state, reply_receiver) = err.into_inner();
[INFO] [stdout]      | |                                      -----                    ----------------
[INFO] [stdout]      | |                                      |                        |
[INFO] [stdout]      | |                                      |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      | |                                      |                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      | |                                      `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  798 | |
[INFO] [stdout]  799 | |                                 let key_exists = match Self::parse_exists_result(reply_receiver.await) {
[INFO] [stdout]      | |                                                                                  --------------------
[INFO] [stdout]      | |                                                                                  |
[INFO] [stdout]      | |                                                                                  this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                                                                                  `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  804 | |                                     let (_state, req_task) =
[INFO] [stdout]      | |                                          ------
[INFO] [stdout]      | |                                          |
[INFO] [stdout]      | |                                          this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      | |                                          `#11` will be dropped later as of Edition 2024
[INFO] [stdout]  805 | |                                         MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      | |                                         --------------------------------------------------------------
[INFO] [stdout]      | |                                         |
[INFO] [stdout]      | |                                         this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      | |                                         `#12` will be dropped later as of Edition 2024
[INFO] [stdout]  806 | |                                     if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      | |                                                ---    -------------------------
[INFO] [stdout]      | |                                                |      |
[INFO] [stdout]      | |                                                |      this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      | |                                                |      `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      | |                                                `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  817 | |                                     match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      | |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                           |
[INFO] [stdout]      | |                                           this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      | |                                           up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  818 | |                                         Some(lock_guard) => break (lock_guard, state),
[INFO] [stdout]  819 | |                                         None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      | |                                                 --------------------------------------------------
[INFO] [stdout]      | |                                                 |
[INFO] [stdout]      | |                                                 this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      | |                                                 `#15` will be dropped later as of Edition 2024
[INFO] [stdout]  820 | |                                     }
[INFO] [stdout]  821 | |                                 }
[INFO] [stdout]      | |                                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  825 | |                 };
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  828 |                       MgrCmdStateDumpPttl::from_state_exists(state, &(*cmd_task_factory), lock_guard);
[INFO] [stdout]      |                       -------------------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                       `#16` will be dropped later as of Edition 2024
[INFO] [stdout]  829 |                   if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                              ---    -------------------------
[INFO] [stdout]      |                              |      |
[INFO] [stdout]      |                              |      this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                              |      `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                              `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  832 |                   if let Err(_err) = dump_pttl_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                              ----
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `_err` calls a custom destructor
[INFO] [stdout]      |                              `_err` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:734:51
[INFO] [stdout]      |
[INFO] [stdout]  734 |               while let Some((state, reply_receiver)) = exists_task_receiver.next().await {
[INFO] [stdout]      |                               -----                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                               |                         |                           |
[INFO] [stdout]      |                               |                         |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               |                         |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      |                               |                         up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                               `state` calls a custom destructor
[INFO] [stdout]      |                               `state` will be dropped later as of Edition 2024
[INFO] [stdout]  735 |                   let res = reply_receiver.await;
[INFO] [stdout]      |                             --------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `__awaitee` calls a custom destructor
[INFO] [stdout]      |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  746 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  747 |                           MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      |                           --------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  748 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  758 |                   let (lock_guard, state) = match key_lock.lock(state.key.clone(), state.lock_slot) {
[INFO] [stdout]      |                                             -     -------------------------------------------------
[INFO] [stdout]      |                                             |     |
[INFO] [stdout]      |                                             |     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |  ___________________________________________|     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      | |
[INFO] [stdout]  759 | |                     Some(lock_guard) => {
[INFO] [stdout]  760 | |                         stats.importing_lock_success.fetch_add(1, Ordering::Relaxed);
[INFO] [stdout]  761 | |                         (lock_guard, state)
[INFO] [stdout] ...    |
[INFO] [stdout]  775 | |                         let (state, reply_receiver) = match Self::resend_to_exist_to_dst(
[INFO] [stdout]      | |  _____________________________________________________-     -
[INFO] [stdout]      | | |  _________________________________________________________|
[INFO] [stdout]  776 | | | |                         inner_task,
[INFO] [stdout]  777 | | | |                         &(*cmd_task_factory),
[INFO] [stdout]  778 | | | |                         key,
[INFO] [stdout]  779 | | | |                         lock_slot,
[INFO] [stdout]  780 | | | |                         &dst_sender,
[INFO] [stdout]  781 | | | |                     ) {
[INFO] [stdout]      | | | |                     -
[INFO] [stdout]      | | | |                     |
[INFO] [stdout]      | | | |_____________________this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      | | |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]  782 | | |                           Ok(r) => r,
[INFO] [stdout]  783 | | |                           Err(()) => continue,
[INFO] [stdout]  784 | | |                       };
[INFO] [stdout]      | | |                       -
[INFO] [stdout]      | | |                       |
[INFO] [stdout]      | | |_______________________this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                         `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  797 | |                                 let (state, reply_receiver) = err.into_inner();
[INFO] [stdout]      | |                                      -----                    ----------------
[INFO] [stdout]      | |                                      |                        |
[INFO] [stdout]      | |                                      |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      | |                                      |                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      | |                                      `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  798 | |
[INFO] [stdout]  799 | |                                 let key_exists = match Self::parse_exists_result(reply_receiver.await) {
[INFO] [stdout]      | |                                                                                  --------------------
[INFO] [stdout]      | |                                                                                  |
[INFO] [stdout]      | |                                                                                  this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                                                                                  `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  804 | |                                     let (_state, req_task) =
[INFO] [stdout]      | |                                          ------
[INFO] [stdout]      | |                                          |
[INFO] [stdout]      | |                                          this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      | |                                          `#11` will be dropped later as of Edition 2024
[INFO] [stdout]  805 | |                                         MgrCmdStateForward::from_state_exists(state, registry.clone());
[INFO] [stdout]      | |                                         --------------------------------------------------------------
[INFO] [stdout]      | |                                         |
[INFO] [stdout]      | |                                         this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      | |                                         `#12` will be dropped later as of Edition 2024
[INFO] [stdout]  806 | |                                     if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      | |                                                ---    -------------------------
[INFO] [stdout]      | |                                                |      |
[INFO] [stdout]      | |                                                |      this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      | |                                                |      `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      | |                                                `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  819 | |                                         None => tokio::time::sleep(Duration::from_millis(3)).await,
[INFO] [stdout]      | |                                                 --------------------------------------------------
[INFO] [stdout]      | |                                                 |
[INFO] [stdout]      | |                                                 this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      | |                                                 `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  825 | |                 };
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  828 |                       MgrCmdStateDumpPttl::from_state_exists(state, &(*cmd_task_factory), lock_guard);
[INFO] [stdout]      |                       -------------------------------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                       `#16` will be dropped later as of Edition 2024
[INFO] [stdout]  829 |                   if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                              ---    -------------------------
[INFO] [stdout]      |                              |      |
[INFO] [stdout]      |                              |      this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                              |      `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                              `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  832 |                   if let Err(_err) = dump_pttl_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                              ----
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `_err` calls a custom destructor
[INFO] [stdout]      |                              `_err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  835 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `_err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:864:46
[INFO] [stdout]      |
[INFO] [stdout]  864 |           while let Some((state, reply_fut)) = dump_pttl_task_receiver.next().await {
[INFO] [stdout]      |                           -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                           |                    |                              |
[INFO] [stdout]      |                           |                    |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           |                    |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |                    this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                           |                    up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           `state` calls a custom destructor
[INFO] [stdout]      |                           `state` will be dropped later as of Edition 2024
[INFO] [stdout]  865 |               let res = reply_fut.await;
[INFO] [stdout]      |                         ---------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         `__awaitee` calls a custom destructor
[INFO] [stdout]      |                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  878 |                       let (_state, req_task) =
[INFO] [stdout]      |                            ------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            `_state` calls a custom destructor
[INFO] [stdout]      |                            `_state` will be dropped later as of Edition 2024
[INFO] [stdout]  879 |                           MgrCmdStateForward::from_state_dump_pttl(state, registry.clone());
[INFO] [stdout]      |                           -----------------------------------------------------------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  880 |                       if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                                  ---    -------------------------
[INFO] [stdout]      |                                  |      |
[INFO] [stdout]      |                                  |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                  |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                  `err` calls a custom destructor
[INFO] [stdout]      |                                  `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  896 |               let (state, req_task, reply_receiver) = MgrCmdStateRestoreForward::from_state_dump(
[INFO] [stdout]      |  _____________________________________________________-
[INFO] [stdout]  897 | |                 state,
[INFO] [stdout]  898 | |                 entry,
[INFO] [stdout]  899 | |                 &(*cmd_task_factory),
[INFO] [stdout]  900 | |                 registry.clone(),
[INFO] [stdout]  901 | |             );
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |               `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  902 |
[INFO] [stdout]  903 |               if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                          ---    -------------------------
[INFO] [stdout]      |                          |      |
[INFO] [stdout]      |                          |      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                          |      `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                          `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  907 |               if let Err(err) = restore_task_sender.unbounded_send((state, reply_receiver)) {
[INFO] [stdout]      |                          ---
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                          `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  910 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:919:46
[INFO] [stdout]      |
[INFO] [stdout]  919 |         while let Some((state, reply_fut)) = restore_task_receiver.next().await {
[INFO] [stdout]      |                         -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                    |                            |
[INFO] [stdout]      |                         |                    |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                    |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                         |                    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `state` calls a custom destructor
[INFO] [stdout]      |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout]  920 |             let resp = match reply_fut.await {
[INFO] [stdout]      |                              ---------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `__awaitee` calls a custom destructor
[INFO] [stdout]      |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  929 |                 task_context,
[INFO] [stdout]      |                 ------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `task_context` calls a custom destructor
[INFO] [stdout]      |                 `task_context` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  947 |             let (_state, req_task, reply_receiver) =
[INFO] [stdout]      |                                    --------------
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    `reply_receiver` calls a custom destructor
[INFO] [stdout]      |                                    `reply_receiver` will be dropped later as of Edition 2024
[INFO] [stdout]  948 |                 MgrCmdStateDel::from_task_context(task_context, key, &(*cmd_task_factory));
[INFO] [stdout]      |                 --------------------------------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  949 |
[INFO] [stdout]  950 |             if let Err(err) = src_sender.send(req_task) {
[INFO] [stdout]      |                        ---    -------------------------
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        |      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  954 |             if del_task_sender.unbounded_send(reply_receiver).is_err() {
[INFO] [stdout]      |                ----------------------------------------------
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  957 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `reply_receiver` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1008:31
[INFO] [stdout]      |
[INFO] [stdout]  978 |             let mut lock_guard_opt = None;
[INFO] [stdout]      |                 ------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `lock_guard_opt` calls a custom destructor
[INFO] [stdout]      |                 `lock_guard_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1008 |             if let Err(err) = umsync_task_sender.unbounded_send((state, reply_fut)) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1021 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `lock_guard_opt` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:971:40
[INFO] [stdout]      |
[INFO] [stdout]  971 |         while let Some(pending_task) = pending_umsync_task_receiver.next().await {
[INFO] [stdout]      |                        ------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                        |               |                                   |
[INFO] [stdout]      |                        |               |                                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |               |                                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        |               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                        |               up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        `pending_task` calls a custom destructor
[INFO] [stdout]      |                        `pending_task` will be dropped later as of Edition 2024
[INFO] [stdout]  972 |             let PendingUmSyncTask {
[INFO] [stdout]  973 |                 cmd_task,
[INFO] [stdout]      |                 --------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `cmd_task` calls a custom destructor
[INFO] [stdout]      |                 `cmd_task` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  978 |             let mut lock_guard_opt = None;
[INFO] [stdout]      |                 ------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `lock_guard_opt` calls a custom destructor
[INFO] [stdout]      |                 `lock_guard_opt` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  981 |                 if let Some(lock_guard) = key_lock.lock(key.clone(), lock_slot) {
[INFO] [stdout]      |                                           -------------------------------------
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  988 |                 tokio::time::sleep(Duration::from_millis(3)).await;
[INFO] [stdout]      |                 --------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |             let (state, req_task, reply_fut) =
[INFO] [stdout]      |                  -----            ---------
[INFO] [stdout]      |                  |                |
[INFO] [stdout]      |                  |                `reply_fut` calls a custom destructor
[INFO] [stdout]      |                  |                `reply_fut` will be dropped later as of Edition 2024
[INFO] [stdout]      |                  `state` calls a custom destructor
[INFO] [stdout]      |                  `state` will be dropped later as of Edition 2024
[INFO] [stdout] 1000 |                 MgrCmdStateUmSync::from_task(cmd_task, key, lock_guard, cmd_task_factory.as_ref());
[INFO] [stdout]      |                 ----------------------------------------------------------------------------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 1001 |             if let Err(err) = src_proxy_sender.send(req_task) {
[INFO] [stdout]      |                        ---    -------------------------------
[INFO] [stdout]      |                        |      |
[INFO] [stdout]      |                        |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                        |      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1011 |                 let MgrCmdStateUmSync { inner_task, .. } = err.into_inner().0;
[INFO] [stdout]      |                                                            ----------------
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                                            `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 1012 |                 let task = WaitableTask::new_with_registry(inner_task, registry.clone());
[INFO] [stdout] 1013 |                 if let Err(err) = dst_sender.send(ReqTask::Simple(task)) {
[INFO] [stdout]      |                            ---
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                            `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1021 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `lock_guard_opt` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]      |
[INFO] [stdout]  624 | impl Drop for TimerEntry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `reply_fut` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1063:31
[INFO] [stdout]      |
[INFO] [stdout] 1062 |             let (_state, req_task) = MgrCmdStateForward::from_state_umsync(state, registry.clone());
[INFO] [stdout]      |                  ------
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  `_state` calls a custom destructor
[INFO] [stdout]      |                  `_state` will be dropped later as of Edition 2024
[INFO] [stdout] 1063 |             if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1066 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1030:46
[INFO] [stdout]      |
[INFO] [stdout] 1030 |         while let Some((state, reply_fut)) = umsync_task_receiver.next().await {
[INFO] [stdout]      |                         -----                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                    |                           |
[INFO] [stdout]      |                         |                    |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                    |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         |                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `state` calls a custom destructor
[INFO] [stdout]      |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1033 |             match reply_fut.await {
[INFO] [stdout]      |                   ---------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1062 |             let (_state, req_task) = MgrCmdStateForward::from_state_umsync(state, registry.clone());
[INFO] [stdout]      |                  ------              --------------------------------------------------------------
[INFO] [stdout]      |                  |                   |
[INFO] [stdout]      |                  |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                  |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                  `_state` calls a custom destructor
[INFO] [stdout]      |                  `_state` will be dropped later as of Edition 2024
[INFO] [stdout] 1063 |             if let Err(err) = dst_sender.send(req_task) {
[INFO] [stdout]      |                        ---
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        `err` calls a custom destructor
[INFO] [stdout]      |                        `err` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1066 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_state` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1328:1
[INFO] [stdout]      |
[INFO] [stdout] 1328 | impl Drop for KeyLockGuard {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `err` invokes this custom destructor
[INFO] [stdout]     --> src/proxy/migration_backend.rs:83:1
[INFO] [stdout]      |
[INFO] [stdout]   83 | impl Drop for AutoDropWaitRegistry {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/proxy/migration_backend.rs:1070:37
[INFO] [stdout]      |
[INFO] [stdout] 1070 |         while let Some(reply_fut) = del_task_receiver.next().await {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                     |                        |
[INFO] [stdout]      |                                     |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                     |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1071 |             let resp = match reply_fut.await {
[INFO] [stdout]      |                              ---------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              `__awaitee` calls a custom destructor
[INFO] [stdout]      |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1084 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/replication/redis_replicator.rs:164:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let mut cached_client: Option<F::Client> = None;
[INFO] [stdout]     |             -----------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cached_client` calls a custom destructor
[INFO] [stdout]     |             `cached_client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 |                 tokio::time::sleep(interval).await;
[INFO] [stdout]     |                 ----------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 146 |             let cmd = match resolve_first_address(master_node_address.as_str()).await {
[INFO] [stdout]     |                             ---------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 161 |             let mut client = match cached_client.take() { Some(client) => {
[INFO] [stdout]     |                 ----------         --------------------
[INFO] [stdout]     |                 |                  |
[INFO] [stdout]     |                 |                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `client` calls a custom destructor
[INFO] [stdout]     |                 `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 |                 match self.client_factory.create_client(address.clone()).await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                                                  |
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       |                                                  up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                       |                                                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |             }};
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 172 |
[INFO] [stdout] 173 |             let resp = match client.execute_single(cmd).await {
[INFO] [stdout]     |                              --------------------------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                              `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.20.1/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:133:31
[INFO] [stdout]     |
[INFO] [stdout] 133 |                         match BackendError::from_sender_backend_error(err) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:132:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     if let Err(err) = self.sender.send(t) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 154 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/proxy/sender.rs:131:37
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 while let Some(t) = it.next() {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 for t in it.chain(retry_tasks.into_iter()) {
[INFO] [stdout]     |                                          ---------------------------------
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          `iter` calls a custom destructor
[INFO] [stdout]     |                                          `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 154 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/mem_broker.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/server_proxy.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/connection.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/proxy_manager_test.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/coordinator.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/bin/coordinator.rs (1 fix)
[INFO] [stderr]    Migrating tests/redis_client.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 48s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, fs_extra v1.2.0, multipart v0.18.0, openssl v0.10.41
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: undermoon v0.6.2 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr] error: failed to parse manifest at `/opt/rustwide/workdir/Cargo.toml`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   `default_features` is unsupported as of the 2024 edition; instead use `default-features`
[INFO] [stderr]   (in the `config` dependency)
[INFO] running `Command { std: "docker" "inspect" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10", kill_on_drop: false }`
[INFO] [stdout] b8d771e7db869e1dcc88cf8f70e93e7bd2f8f270812b907d2e5f6652abf98d10
